package nextfm.bean;

import java.util.List;

import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;

import nextfm.dao.DAOCategoria;
import nextfm.model.Categoria;

public class CategoriaBean {

	DAOCategoria daoCategoria = new DAOCategoria();
	int id;
	String nome;
	Categoria categoriaSelecionada;
	List<Categoria> categorias = daoCategoria.findAll();
	int scrollerPage = 1;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Categoria getCategoriaSelecionada() {
		return categoriaSelecionada;
	}

	public void setCategoriaSelecionada(Categoria categoriaSelecionada) {
		this.categoriaSelecionada = categoriaSelecionada;
	}

	public List<Categoria> getCategorias() {
		return categorias;
	}

	public void setCategorias(List<Categoria> categorias) {
		this.categorias = categorias;
	}

	public int getScrollerPage() {
		return scrollerPage;
	}

	public void setScrollerPage(int scrollerPage) {
		this.scrollerPage = scrollerPage;
	}

	public String remover() {
		try {
			System.out.println("Removendo categoria de id" + getId());
			Categoria categoria = daoCategoria.find(getId());
			daoCategoria.begin();
			daoCategoria.remove(categoria);
			daoCategoria.commit();
			return "success";
		}

		catch (Exception e) {
			e.printStackTrace();
			return "failure";
		}
	}

	public String editar() {

		try {
			Categoria categoria = daoCategoria.find(getId());
			categoria.setNome(getNome());
			System.out.println("Editando categoria de id " + getId());
			daoCategoria.begin();
			daoCategoria.merge(categoria);
			daoCategoria.commit();
			return "success";
		}

		catch (Exception e) {
			return "failure";
		}

	}

	public String cadastrar() {
		try {
			System.out.println("Adicionando categoria " + getNome());
			Categoria categoria = new Categoria(getNome());
			daoCategoria.begin();
			daoCategoria.persist(categoria);
			daoCategoria.commit();
			return "success";
		}

		catch (Exception e) {
			e.printStackTrace();
			return "failure";
		}
	}

	public void selecionarCategoria(ActionEvent evento){  
		UIParameter component = (UIParameter) evento.getComponent().findComponent("codigoEdicao");  
		int codigo = Integer.parseInt(component.getValue().toString());   
		setCategoriaSelecionada(daoCategoria.find(codigo));
		setNome(categoriaSelecionada.getNome());
		setId(codigo);
	}

}
